=========================================================================== BBS: The Abacus * HST/DS * Potterville MI Date: 04-19-93 (09:14) Number: 147 From: DAVID COLSTON Refer#: NONE To: ALL Recvd: NO Subj: File Scrambler 1/3 Conf: (35) Quick Basi --------------------------------------------------------------------------- -----Cut here with a chain saw--- DECLARE FUNCTION DRnd% (B%()) DECLARE SUB FillChart (B%(), Seed$) '$INCLUDE: 'C:\bc7\src\QBX.BI' ' Include Data Types for INTERRUPT calls '$STATIC DIM Reg AS RegType ' Used for INTERRUPT calls DEFLNG A-Z ' Reg.ax = &H5100 Interrupt &H21, Reg, Reg DEF SEG = Reg.Bx Cmd$ = SPACE$(PEEK(&H80)) FOR I = &H81 TO (&H80 + PEEK(&H80)) D = PEEK(I) IF D = 13 THEN EXIT FOR MID$(Cmd$, I - &H80, 1) = CHR$(PEEK(I)) NEXT DEF SEG X = INSTR(1, Cmd$, ", ") IF X < 2 OR X = LEN(Cmd$) THEN PRINT "Syntax:" PRINT "Hideit filename.ext, Passphrase (MAX 128_ Chars Case Sensitive)" PRINT " ^ use comma" END END IF File$ = LTRIM$(RTRIM$(LEFT$(Cmd$, X - 1))) IF File$ = "" THEN PRINT "Syntax:" PRINT "Hideit filename.ext, Passphrase (MAX 128_ Chars Case Sensitive)" END END IF CLS Pass$ = RTRIM$(RIGHT$(Cmd$, LEN(Cmd$) - X)) DIM B%(255) TYPE CharRecord Char AS STRING * 1 END TYPE DIM CharFile AS CharRecord TYPE BigRecord K AS STRING * 256 END TYPE DIM BigFile AS BigRecord FillChart B%(), Pass$ FOR I = 1 TO 256 X% = DRnd%(B%()) 'Stir Up the Pot NEXT NewFile$ = "Temp.ENC" File% = FREEFILE OPEN File$ FOR RANDOM AS File% LEN = LEN(BigFile) MaxBytes = LOF(File%) IF MaxBytes = 0 THEN CLOSE KILL File$ PRINT File$; " NOT found!" END END IF Rounds = MaxBytes \ LEN(BigFile) NewFile% = FREEFILE OPEN NewFile$ FOR OUTPUT AS NewFile% LEN = 4048 FOR I = 1 TO 128 A$ = CHR$(ASC(MID$(Pass$, I, 1)) XOR DRnd%(B%())) PRINT #NewFile%, A$; NEXT * JABBER v1.1 * Colston & Associates, Inc. (501) 452-4948 --- WM v2.08/92-0178 * Origin: Paradox of Arkansas 501-484-0944 (1:3822/1) SEEN-BY: 1/211 11/2 4 13/13 101/1 108/89 109/25 110/69 114/5 123/19 124/1 SEEN-BY: 153/752 154/40 77 157/2 159/100 125 430 575 950 203/23 209/209 SEEN-BY: 280/1 390/1 396/1 15 397/2 2230/100 2440/5 3603/20